/**
 * @file setting.h
 *
 */
#ifndef SETTING_H
#define SETTING_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/

#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_watch_conf.h"
#else
#include "../../../lvgl/lvgl.h"
#include "../../../lv_watch_conf.h"
#endif
#include <stdio.h>
#include "setting_brightness.h"
#include "setting_volume.h"
#include "setting_date_time.h"
#include "setting_about.h"
#include "setting_volte_switch.h"
#include "setting_bluetooth.h"
#include "setting_wlan.h"
#include "setting_keypad.h"
#include "setting_dual_sim.h"
#if USE_LV_WATCH_SD_AUTO_MOUNT != 0
#include "setting_sd_auto_mount.h"
#endif
#include "setting_mobile_network.h"
#include "setting_tab.h"
#include "setting_search_switch.h"
#include "setting_flying_mode.h"

#if USE_LV_WATCH_SETTING != 0

/*********************
 *      DEFINES
 *********************/
#define NV_APN_OFFSET  9
#define NV_MOBILE_DATA_OFFSET  (NV_APN_OFFSET + sizeof(nv_apn_info) * 2 + 1)

/**********************
 *      TYPEDEFS
 **********************/

/**********************
 * GLOBAL PROTOTYPES
 **********************/

/**
 * Create a setting application
 */
lv_obj_t * setting_create(lv_obj_t * par);
void setting_create_event_cb(lv_obj_t * btn, lv_event_t e);
extern void setting_init(void);
/**only for craneg A1**/
#if defined(USE_LV_VAD) && (USE_LV_VAD > 0)
void voice_wakeup_create_btn_event_cb(lv_obj_t * btn, lv_event_t e);
void voice_wakeup_init(void);
#endif
#if USE_LV_WLAN != 0
bool setting_get_mobile_data_switch(void);
void setting_set_mobile_data_switch(bool on_off);
void setting_init_mobile_data_switch(void);
#endif
bool setting_is_flying_mode(void);
lv_obj_t * setting_get_list_btn(uint16_t text_id);

/**********************
 *      MACROS
 **********************/

#endif /*USE_LV_WATCH_SETTING*/

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_H*/
